Computer simulations, such as video games, that feature a virtual environment are increasingly popular. Such simulations typically feature a computer-generated landscape made up of content virtual objects that may represent an actual or an imaginary location in a past, present, or future time. Users are represented in the virtual environment by avatar virtual objects. Users control the avatars on the landscape through client software that runs on a computing device. An avatar can typically roam the landscape and interact with other users' avatars and with other computer-generated virtual objects. Different host computers control respective regions in the virtual environment. Interactions between avatars and other virtual objects result in message traffic between the client software controlling the avatar and a host that controls the respective region in which the interactions are occurring. As the avatar moves from one region to another, the responsibility for handling message traffic associated with the avatar may move from one host to another host. The existence of regions and the transitioning of client-host interactions may be transparent to the user.
A single entity typically creates the landscape virtual objects that define the landscape associated with a virtual environment. The landscape may be very detailed, and the graphics required to depict the landscape may be very large. The landscape virtual objects are usually downloaded and stored on the client computer as part of an installation process of the respective simulation before the user can participate in the virtual environment. While participating in the virtual environment, the landscape is rendered by client software and presented to the user on a display device. Preloading the landscape of the virtual environment on the client computer prior to game play allows the landscape to be rendered and presented to the user quickly, which would be difficult or impossible if the landscape virtual objects were being transferred over a network during game play.
Distributed virtual environments executing on hosts that are not under the control of a single entity are being considered. In such a virtual environment, entities that have no relationship with one another may host adjacent regions in the virtual environment. One problem with such a distributed virtual environment is that it will be difficult or impossible to preload the landscape of the entire virtual environment on the client computer prior to participating in the virtual environment because the landscape itself can change as hosts come online or go offline. Consequently, the landscape will typically be downloaded on an ad-hoc basis. Downloading the landscape virtual objects, which may be sizable, will compete with downloading other virtual environment information, such as messages and other types of virtual objects that are necessary to provide the user a realistic experience. Merely halting movement of an avatar until the landscape associated with a host has been transferred over the network to the client computer would result in significant delays for the user and would not lead to a satisfactory virtual environment experience. However, failure to provide sufficient landscape detail while enabling the avatar to interact with other virtual objects would likewise not provide a realistic virtual environment experience. Moreover, the order of providing virtual objects must be consistent from a realism perspective. For example, it would be unrealistic to display a bird virtual object sitting in a tree prior to displaying the tree virtual object. Thus, there is a need for a virtual object prioritization process for downloading virtual objects in a distributed virtual environment that properly balances available bandwidth with competing virtual object download requirements to provide a realistic virtual environment experience.